// 服务器主体, 提供页面文件访问服务
const Koa = require('koa')
const serve = require('koa-static')
const {historyApiFallback} = require('koa2-connect-history-api-fallback')
const proxy = require('koa2-proxy-middleware')


// 创建服务器实例
const app = new Koa()

// 代理转发, 发现 /prod-api 要转向远程
// 还要将所有带有 /prod-api 连接转发之前重写为 /api
app.use(proxy({
  targets:{
    '/prod-api/(.*)': {
      target: 'http://ihrm-java.itheima.net/',
      changeOrigin: true,
      // 由于我们的开发环境配置的基准请求路径为 /prod-api 但是后端只接受 /api 需要路径重写
      pathRewrite: {
        '/prod-api': '/api'
      }
    }
  }
}))

// 在提供静态页面服务之前, 使用一个中间件处理 history 路由模式引起刷新404问题
app.use(historyApiFallback())

// 用中间件提供静态文件服务(同时指定根目录)
app.use(serve(__dirname + '/public'))

// 开启服务器
const port = 3333
app.listen(port, () => {
  console.log('服务器开启成功');
  console.log(`http://localhost:${port}`);
})